package com.glls.customer.config;

import feign.Logger;
import feign.Retryer;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * TODO
 *
 * @author junyang
 * @version 1.0.0
 * @date 2025/2/20 11:40
 */
@Configuration
public class CustomerConfig {

    @Bean
    //当加上 负载均衡的注解后 ，就不要再使用 ip 的那种  url 地址了 ， 会有冲突
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }


    //fegin的日志组件     输出feign 远程调用时的详细日志
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }


    //重试组件
    @Bean
    Retryer retryer(){
        //默认间隔 100ms  间隔以1.5倍增长   第一次100ms  第二次 150 ms   第三次  225ms   最大间隔1秒   最多尝试5次
        return new Retryer.Default();

        //手动指定    默认间隔 200 ms   最大间隔2 秒   最多尝试 3 次
        //return new Retryer.Default(200,2,3);
    }


}
